package skladowisko;

import java.util.ArrayList;
import java.util.List;
import skladowisko.transport.Transportujacy;

/**
 *
 * @author Krzysiek
 */
public class Pociag implements Transportujacy
{
    public static final int DOMYSLNA_LICZBA_MIEJSC = 2;

    private String nazwa;
    private String skad;

    private List<Wagon> wagony;

    //**************************************************************************
    public Pociag(String nazwa)
    {
        this.nazwa = nazwa;
        wagony = new ArrayList<Wagon>();
    }
    //**************************************************************************
    public void dodajWagon(int numer, int iloscMiejsc, ListaWagonowa listaWagonowa)
    {
        Wagon nowy = new Wagon(this, numer, iloscMiejsc, listaWagonowa);
        wagony.add(nowy);
    }
    //**************************************************************************
    public void dodajWagon(int numer, int iloscMiejsc)
    {
        Wagon nowy = new Wagon(this, numer, iloscMiejsc);
        wagony.add(nowy);
    }
    //**************************************************************************
    public int getIloscWagonow()
    {
        return wagony.size();
    }
    //**************************************************************************
    public int iloscKontenerow()
    {
        int wynik = 0;
        for(Wagon w : wagony)
            wynik += w.getZawartoscWagonu().getIloscKontenerow();

        return wynik;
    }
    //**************************************************************************
    public List<Kontener> pobierzZawartosc()
    {
        List<Kontener> kontenery = new ArrayList<Kontener>();
        for(Wagon w : wagony)
        {
            List<Kontener> zw = w.pobierzWszystkie();

            for(Kontener k : zw)
                kontenery.add(k);
        }

        return kontenery;
    }
    //**************************************************************************
    public void setSkad(String skad)
    {
        this.skad = skad;
    }
    //**************************************************************************
    public Wagon getWagon(int numerWagonu) {
          for(Wagon w : wagony)
          {
              if(w.getNumer() == numerWagonu)
                  return w;
          }

          return null;
    }
    //**************************************************************************
    @Override
    public String toString()
    {
        StringBuilder sb = new StringBuilder();
        sb.append("Pociag ").append(nazwa).append(" z ").append(skad).append("\n");
               
        for(int i=0;i<wagony.size();i++)
        {
            Wagon tmp = wagony.get(i);
            String opisWagonu = tmp.toString();
            sb.append(opisWagonu);
        }
        
        return sb.toString();
    }

    //**************************************************************************
}
